#随机n位字符串，返回n位字符串
from public.action import get_pro_path


def randomString(n):
    import string
    import random
    s="".join(random.sample(string.ascii_letters + string.digits + "!@#$%^&*()", n))
    # ascii_letters是生成所有字母，从a - z和A - Z，digits是生成所有数字0 - 9.
    # random.sample可以从指定的序列中，随机的截取指定长度的片断，不作原地修改。
    return s
#读文件，返回文件内容
def readFile(url):
    f = open( url,"r")
    s = f.read()
    f.close()
    return s
#写文件
def writeFile(url,String):
    f=open(url,"w")
    f.write(String)
    f.close()
#根据左右边界提取文本，返回匹配到的文本
def reGetString(String,leftBinary="^",rightBinary="$"):
    # .表示匹配任意字符
    # * 表示匹配任意次数0到n次
    #? 表示非贪婪匹配,匹配最近的内容
    import re
    result=re.search("%s(.*?)%s"%(leftBinary,rightBinary),String)
    return result.group(1)  #返回的内容就是(.*?)匹配到的内容


#写日志
def writeLog(String):
    import time
    sysTime=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    pro_path=get_pro_path()
    f=open(pro_path+"\\testReport\\log.txt","a+")
    f.write("[%s] %s\n"%(sysTime,String))
    f.close()
if __name__ == '__main__':
#     print(randomString(10))
#     a=reGetString("abc^def$g",'a','c')
#     print(a)
#     import re
#     result=re.search("a(.*?)g","abc^def$gabc^def$g")
#     if result!=None:
#         print(result.group(1))
#     else:
#         print(result)
   print(reGetString("abc^def$gabc^def$g",'a','g'))
